home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Moscow ML 1.31 / source code / mosml / src / mosmllib / test / array2.sml < prev    next >
Encoding:
Text File  |  1996-07-03  |  4.1 KB  |  111 lines  |  [TEXT/R*ch]

  1. (* File "test/array2.sml" 1995-09-12 *)
  2.  
  3. val _ = load "Array2";
  4.  
  5. use "auxil.sml";
  6.  
  7. local 
  8.     open Array2
  9. in
  10.  
  11. val a0 = tabulate(0, 0, fn (i, j) => 1 div 0);
  12. val a = tabulate(10, 20, fn (i, j) => (i+100, j+200));
  13.  
  14. val test1a = 
  15.     check'(fn _ => 
  16.        sub(a, 7, 18) = (107, 218)
  17.        andalso sub(a, 0, 0)  = (100, 200)
  18.        andalso sub(a, 0, 19) = (100, 219)
  19.        andalso sub(a, 9, 0)  = (109, 200)
  20.        andalso sub(a, 9, 19) = (109, 219));
  21.  
  22. val test1b = (sub(a, 10, 0) seq "WRONG")
  23.              handle Subscript => "OK" | _ => "WRONG";
  24. val test1c = (sub(a, 0, 20) seq "WRONG")
  25.              handle Subscript => "OK" | _ => "WRONG";
  26. val test1d = (sub(a, ~1, 0) seq "WRONG")
  27.              handle Subscript => "OK" | _ => "WRONG";
  28. val test1e = (sub(a, 0, ~1) seq "WRONG")
  29.              handle Subscript => "OK" | _ => "WRONG";
  30. val test1f = (sub(a, ~1, ~1) seq "WRONG")
  31.              handle Subscript => "OK" | _ => "WRONG";
  32.  
  33. val _ = update(a, 7, 18, (707, 1818));
  34.  
  35. val test2 =
  36.     check'(fn _ => 
  37.        sub(a, 7, 18) = (707, 1818)
  38.        andalso sub(a, 7, 17) = (107, 217)
  39.        andalso sub(a, 7, 19) = (107, 219)
  40.        andalso sub(a, 6, 18) = (106, 218)
  41.        andalso sub(a, 8, 18) = (108, 218));
  42.  
  43. val test3 = check'(fn _ => dim a = (10, 20));
  44.  
  45. val test4a = 
  46.     check'(fn _ =>
  47.        extract1(a, 2, 18, NONE) = #[(102, 218), (102, 219)]
  48.            andalso extract1(a, 2, 20, NONE) = #[]
  49.            andalso extract1(a, 9, 20, NONE) = #[]
  50.            andalso extract1(a, 0, 20, NONE) = #[]);
  51.  
  52. val test4b = 
  53.     check'(fn _ =>
  54.        extract1(a, 2, 18, SOME 2) = #[(102, 218), (102, 219)]
  55.        andalso extract1(a, 2, 18, SOME 1) = #[(102, 218)]
  56.        andalso extract1(a, 2, 18, SOME 0) = #[]
  57.            andalso extract1(a, 2, 20, SOME 0) = #[]);
  58.  
  59. val test4c = (extract1(a, 10, 18, NONE) seq "WRONG")
  60.              handle Subscript => "OK" | _ => "WRONG";
  61. val test4d = (extract1(a, ~1, 18, NONE) seq "WRONG")
  62.              handle Subscript => "OK" | _ => "WRONG";
  63. val test4e = (extract1(a,  2, ~1, NONE) seq "WRONG")
  64.              handle Subscript => "OK" | _ => "WRONG";
  65. val test4f = (extract1(a, 10, 20, NONE) seq "WRONG")
  66.              handle Subscript => "OK" | _ => "WRONG";
  67. val test4g = (extract1(a,  2, 20, SOME 1) seq "WRONG")
  68.              handle Subscript => "OK" | _ => "WRONG";
  69. val test4h = (extract1(a, 10, 18, SOME 1) seq "WRONG")
  70.              handle Subscript => "OK" | _ => "WRONG";
  71. val test4i = (extract1(a, ~1, 18, SOME 1) seq "WRONG")
  72.              handle Subscript => "OK" | _ => "WRONG";
  73. val test4j = (extract1(a,  2, ~1, SOME 1) seq "WRONG")
  74.              handle Subscript => "OK" | _ => "WRONG";
  75. val test4k = (extract1(a, 10, 20, SOME 1) seq "WRONG")
  76.              handle Subscript => "OK" | _ => "WRONG";
  77.  
  78. val test5a = 
  79.     check'(fn _ =>
  80.        extract2(a, 8, 18, NONE) = #[(108, 218), (109, 218)]
  81.            andalso extract2(a, 10, 18, NONE) = #[]
  82.            andalso extract2(a, 10,  0, NONE) = #[]
  83.            andalso extract2(a, 10, 19, NONE) = #[]);
  84.  
  85. val test5b = 
  86.     check'(fn _ =>
  87.        extract2(a, 8, 18, SOME 2) = #[(108, 218), (109, 218)]
  88.        andalso extract2(a,  8, 18, SOME 1) = #[(108, 218)]
  89.        andalso extract2(a, 10,  0, SOME 0) = #[]
  90.            andalso extract2(a, 10, 19, SOME 0) = #[]);
  91.  
  92. val test5c = (extract2(a,  2, 20, NONE) seq "WRONG")
  93.              handle Subscript => "OK" | _ => "WRONG";
  94. val test5d = (extract2(a, ~1, 18, NONE) seq "WRONG")
  95.              handle Subscript => "OK" | _ => "WRONG";
  96. val test5e = (extract2(a,  2, ~1, NONE) seq "WRONG")
  97.              handle Subscript => "OK" | _ => "WRONG";
  98. val test5f = (extract2(a, 10, 20, NONE) seq "WRONG")
  99.              handle Subscript => "OK" | _ => "WRONG";
  100. val test5g = (extract2(a,  2, 20, SOME 1) seq "WRONG")
  101.              handle Subscript => "OK" | _ => "WRONG";
  102. val test5h = (extract2(a, 10, 18, SOME 1) seq "WRONG")
  103.              handle Subscript => "OK" | _ => "WRONG";
  104. val test5i = (extract2(a, ~1, 18, SOME 1) seq "WRONG")
  105.              handle Subscript => "OK" | _ => "WRONG";
  106. val test5j = (extract2(a,  2, ~1, SOME 1) seq "WRONG")
  107.              handle Subscript => "OK" | _ => "WRONG";
  108. val test5k = (extract2(a, 10, 20, SOME 1) seq "WRONG")
  109.              handle Subscript => "OK" | _ => "WRONG";
  110. end
  111.